// 搭建一个websoket 
const http = require("http");
const fs = require("fs");

var server = http.createServer(function (req, res) {
  res.writeHead(200, { "Content-type": "text/html;chartset=utf-8" })
  // 用户访问服务器 返回qq.html 
  res.end(fs.readFileSync("./qq.html"))
})

// nodejs 的 websoket 模块 ws 
const Server = require("ws").Server;

// 建立ws服务器

var wss = new Server({ server });

var clientMap = {
}//记录每个客户端的连接

var id = 0; //给每个连接的客户端不同的id 

// 监听连接事件
wss.on("connection", function (socket) {
  id++;
  console.log("有" + id + "个人进入服务器")
  socket.id = id; //给每个连接做一个id
  clientMap[socket.id] = socket;
  // 监听当前客户端发送消息
  socket.on("message", function (msg) {
    console.log(msg)
    for (var id in clientMap) { //当前客户端发送的消息 发送给每个客户端
      if (id == socket.id) {
        clientMap[id].send(msg)
      } else {
        clientMap[id].send(msg)
      }
    }
  })
  // 当前客户端断开连接
  socket.on("close", function () {
    console.log("有人离开了")
  })
  // 监听连接错误
  socket.on("error", function () { })

})

server.listen(4000, "169.254.184.38", function () {
  console.log("服务器启动成功")
})

